* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'Poppins', sans-serif;
}

body {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  background: #297eff;
}

.search {
  position: relative;
  width: 60px;
  height: 60px;
  background: #fff;
  border-radius: 60px;
  overflow: hidden;
  transition: 0.5s;
  box-shadow: 0 0 0 5px #2573ef;
}

.search.active {
  width: 360px;
}

.search .icon {
  position: absolute;
  left: 0;
  top: 0;
  width: 60px;
  height: 60px;
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  z-index: 1;
}

.search .icon:before {
  content: '';
  position: absolute;
  width: 15px;
  height: 15px;
  border: 3px solid #287dfc;
  border-radius: 50%;
  transform: translate(-4px, -4px);
  transition: 0.5s;
}

.search .icon:after {
  content: '';
  position: absolute;
  width: 3px;
  height: 12px;
  background: #287dfc;
  transform: translate(6px, 6px) rotate(315deg);
}

.search .input {
  position: relative;
  width: 300px;
  height: 60px;
  left: 60px;
  background: #f0f;
  display: flex;
  justify-content: center;
  align-items: center;
}

.search .input input {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  padding: 10px 0;
  border: none;
  outline: none;
  font-size: 18px;
}

.clear {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 15px;
  width: 15px;
  height: 15px;
  display: block;
  background: #fff;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
}

.clear:before {
  position: absolute;
  content: '';
  width: 1px;
  height: 15px;
  background: #999;
  transform: rotate(45deg);
}

.clear:after {
  position: absolute;
  content: '';
  width: 1px;
  height: 15px;
  background: #999;
  transform: rotate(315deg);
}
